Android под капотом: Тестирование без иллюзий
Серия: Android под капотом: Тестирование без иллюзий (7 частей)
- Часть 1 из 7
Философия тестирования в Kotlin: Expect/Actual, , Kotest, Junit, Unit-тесты и природа Test Doubles
Глубокое погружение в философский фундамент тестирования на Kotlin: что означают expect/actual, в чём разница между Unit и JUnit тестами, а также концептуальные роли mocks, stubs, fakes и spies. Понимание тестов как контролируемых симуляций реальности.
- Часть 2 из 7
Инструментальные тесты под капотом: как Android выполняет ваш код Эта статья ещё не завершена и может быть дополнена или изменена.
Исследование внутренней кухни инструментальных тестов Android: от AndroidJUnitRunner и TestInstrumentationRunner до ActivityTestRule и ActivityScenario. Как инструментатор взаимодействует с приложением и что на самом деле происходит при запуске тестов на устройстве или эмуляторе.
- Часть 3 из 7
Внутренности Robolectric: мир теней и иллюзии JVM Эта статья ещё не завершена и может быть дополнена или изменена.
Разбор секретного устройства Robolectric: как shadow-классы подменяют вызовы Android SDK, как создаются JVM-иллюзии для симуляции окружения и почему тесты Robolectric не являются полноценными Android-тестами. Технический и философский анализ иллюзий тестирования.
- Часть 4 из 7
Синхронизация Espresso и контроль UI: внутри тестового фреймворка Android Эта статья ещё не завершена и может быть дополнена или изменена.
Глубокий анализ внутренней механики Espresso: синхронизация потоков, idling resources и взаимодействие с Looper. Как Espresso определяет, что UI 'спокоен', и скрытые сложности при написании стабильных UI-тестов на Android.
- Часть 5 из 7
Манипуляция байткодом и контроль: MockK против Mockito в Kotlin Эта статья ещё не завершена и может быть дополнена или изменена.
Исследование магии манипуляции байткодом в MockK и Mockito: как они подменяют объекты, обрабатывают статические вызовы и обходят финальные ограничения Kotlin. Техническое путешествие в мир runtime-контроля и философию подмены объектов.
- Часть 6 из 7
Читаемые UI-тесты с Kaspresso и Kakao: DSL за пределами Espresso Эта статья ещё не завершена и может быть дополнена или изменена.
Разбор Kaspresso и Kakao: как Kotlin DSL делает UI-тесты более читаемыми, зачем Kaspresso повышает стабильность и в чём ценность сценарного подхода. Технические детали и философия дизайна этих фреймворков.
- Часть 7 из 7
Внутренности Compose Test: дерево семантики и проверка декларативного UI Эта статья ещё не завершена и может быть дополнена или изменена.
Глубокий разбор того, как устроено тестирование Compose: семантическое дерево, API для декларативного тестирования UI и отличие от классических View-тестов. Как Compose-тесты упрощают проверку UI, но добавляют новые скрытые сложности.